/**
 * 
 */
package myTeam.timeShop.dao.impl;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.ScrollableResults;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.hibernate.Session;

import myTeam.timeShop.bean.TbChar;
import myTeam.timeShop.dao.CharDao;

/**
 * @author jiangjintai
 *
 */
@Repository("charDao")
public class CharDaoImpl implements CharDao {
	@Autowired
	SessionFactory sessionFactory;
	private Session getSession(){
		return this.sessionFactory.getCurrentSession();
	}
	/* （非 Javadoc）
	 * @see myTeam.timeShop.dao.GenericDao#load(java.io.Serializable)
	 */
	@Override
	public TbChar load(String id) {
		// TODO 自动生成的方法存根
		return this.getSession().load(TbChar.class, Integer.valueOf(id));
	}

	/* （非 Javadoc）
	 * @see myTeam.timeShop.dao.GenericDao#get(java.io.Serializable)
	 */
	@Override
	public TbChar get(String id) {
		// TODO 自动生成的方法存根
		return this.getSession().get(TbChar.class, Integer.valueOf(id));
	}

	/* （非 Javadoc）
	 * @see myTeam.timeShop.dao.GenericDao#findAll()
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<TbChar> findAll() {
		// TODO 自动生成的方法存根
		return this.getSession().createQuery("from TbChar").list();
	}

	/* （非 Javadoc）
	 * @see myTeam.timeShop.dao.GenericDao#persist(java.lang.Object)
	 */
	@Override
	public void persist(TbChar entity) {
		// TODO 自动生成的方法存根
		this.getSession().persist(entity);
	}

	/* （非 Javadoc）
	 * @see myTeam.timeShop.dao.GenericDao#save(java.lang.Object)
	 */
	@Override
	public String save(TbChar entity) {
		// TODO 自动生成的方法存根
		return (String) this.getSession().save(entity).toString();
	}

	/* （非 Javadoc）
	 * @see myTeam.timeShop.dao.GenericDao#saveOrUpdate(java.lang.Object)
	 */
	@Override
	public void saveOrUpdate(TbChar entity) {
		// TODO 自动生成的方法存根
		this.getSession().saveOrUpdate(entity);
	}

	/* （非 Javadoc）
	 * @see myTeam.timeShop.dao.GenericDao#delete(java.io.Serializable)
	 */
	@Override
	public void delete(String id) {
		// TODO 自动生成的方法存根
		this.getSession().delete(id);
	}

	/* （非 Javadoc）
	 * @see myTeam.timeShop.dao.GenericDao#flush()
	 */
	@Override
	public void flush() {
		// TODO 自动生成的方法存根
		this.getSession().flush();
	}
	/* （非 Javadoc）
	 * @see myTeam.timeShop.dao.CharDao#getAllMyNoSeeChar(java.lang.String)
	 */
	@Override
	public List<TbChar> getAllMyNoSeeChar(String filterUserId) {
		// TODO 自动生成的方法存根
		Query query =this.getSession().getNamedQuery("getAllMyNoSeeChar").setString(0, filterUserId);
		@SuppressWarnings("unchecked")
		List<TbChar> list = query.list();//返回之后对数据库进行更新；
		this.getSession().getNamedQuery("updateAllMyNoSeeChar").setString(0, filterUserId).executeUpdate();
		return list;
		
	}

}
